System and method for multiplexing data from multiple sources

ABSTRACT

A multi-source data multiplexing system that accepts information packets from a plurality of signal sources, evaluates the relative efficiencies of data transmission, and transmits the information packets in provided grant regions for maximum efficiency. The multi-source data multiplexing system may accept any form of information packet from any form of signal source. The system receives a grant region, typically comprising a transmission time on a data channel, and inserts a information packet into the grant region. The actual information packet placed in the grant region may be one other than the packet for which the grant region was intended. Further, the multi-source data multiplexing system may fragment an information packet and transmit only a portion of the information packet in the grant region. Alternately, the multi-source data multiplexing system may concatenate multiple information packets, or information packet fragments, from any combination of signal sources and transmit the concatenated result in the grant region. As long as any signal source is active, the composite flow of information packets remains active, and the composite flow then serves as the primary mechanism for requesting and transmitting additional bandwidth on the network.

FIELD OF THE INVENTION

This invention relates to data and voice communication, and moreparticularly, to data and voice communication over shared accessnetworks.

BACKGROUND OF THE INVENTION

Shared access networks such as cable television systems, the so-called‘wireless cable’ systems, and power line data networks are now common.Cable systems are typically comprised of a central controller (referredto as a “headend”) with one or more trunk lines extending therefrom. Aseries of feeder lines extends from each trunk into subscriber areas.Service lines run from the feeder lines to individual dwellings. Thetrunk, feeder lines, and service lines may be either fiberoptic orcoaxial cable, or a combination of both. Each subscriber is attached viaa line tap onto the feeder or service line. This permits users to freelyaccess the data carried by the cable system, be it televisionprogramming or computer data.

Shared access networks may also be wireless, such as a wireless cablenetwork. In the case of wireless cable networks, a single base stationradiates and receives voice and data RF signals to and from a pluralityof subscribers. In order to increase the capacity of the network withoutrequiring additional frequency channels, the base station may usesectored antennas or multiple polarizations to decrease the number ofsubscribers sharing a given frequency band. However, as long as at leasttwo subscribers share the same frequency, base station antenna sector,and polarization, then the wireless service also qualifies as a sharedaccess medium.

Power line data and voice networks are additional examples of sharedaccess networks. Subscribers share access to the power cables, much ascable subscribers share access to the coaxial cable signals. The powerline signals may further be shared in that signals from a group ofsubscribers may be collected and transmitted to the service provider bywireless base stations in the neighborhood, and these base stations mayalso share bandwidth with other base stations prior to reaching theservice provider's headend (or central controller) facility.

While shared access networks allow a phenomenal number of people accessto information, they suffer problems in transmitting this information.When voice and data traffic are sent over such networks, they are oftenkept separate, usually via different frequency allocations, and often byusing different physical and media access control (MAC) protocols. Whileless efficient and more costly to deploy, the separation of voice anddata permit the quality requirements of voice traffic to be guaranteed,regardless of the data traffic load at any given instant.

Modern networks are emerging which integrate voice and data traffic.Thus, the two services share the overall bandwidth available. Suchmultimedia networks take the approach that voice packet data isformatted and transmitted in the same manner as data packets over thenetwork. Asynchronous transfer method (ATM) systems and internetprotocol (IP) systems employ this approach. However, to ensure thatvoice packets are transmitted in a timely manner, bandwidth must bereserved on the network and managed by higher level entities. Further, astep called segmentation and reassembly (SAR) is required wherein largepackets must be chopped up into smaller pieces for transport.

Take the example of IP voice and data transmitted over a hybridfiber/coaxial cable network. Standards are being developed (among them,DOCIS) in order to ensure that voice traffic may be given servicepriority, thus theoretically preventing degradation when mixed with datatraffic. However, current methods of mixing voice and data areinefficient. Additional bits must be sent for each voice packet whencompared to traditional time domain multiplexing (TDM), which isemployed to transmit voice over circuit switched networks such as thepublic switched telephone network. Further, when technologies such asvoice activity detection (VAD) are used, the voice traffic may stillsuffer under heavy data loading unless additional measures are taken.

Accordingly, there is a need for a more efficient system and method ofmixing data and voice communications over a shared access network.

SUMMARY OF THE INVENTION

Generally stated, the invention is a multi-source multiplexing systemfor use with a shared access network. The multi-source multiplexingsystem receives information (voice or data) packets from a series ofsignal sources. These signal sources may be any source capable ofrequesting or transmitting data or voice across a shared access network,such as a telephone, set-top box, web appliance, personal computer, oreven computer programs operating within any of the aforementioneddevices. The multiplexing system, or a modem associated with themultiplexing system, then requests a grant region within a data channelin order to transmit the information packets. Grant regions areallocated to specific information packets.

Upon receipt of a grant region, the multi-source multiplexing systemdetermines the optimal transmission efficiency for that grant region,given the information packets currently waiting to be transmitted. Indetermining transmission efficiency, the system takes into account therelationship between signal sources, whether an information packet needsto be fragmented in order to fit within a grant region, the transmissionpriorities of each packet, and other knowledge the system possessesregarding the data packets and state of the network. If necessary, themulti-source multiplexing system may concatenate or fragment informationpackets. “Fragmenting” an information packet consists of breaking thepacket into smaller portions, referred to as information packetfragments, in order to transmit a portion of the original packet in agrant region. “Concatenation” takes place when the multi-sourcemultiplexing system transmits a series of information packets within asingle grant region. Information packets from any signal source may beconcatenated with information packets from any other, and transmittedwithin the same grant region. Further, a grant region assigned to oneinformation packet may be used by the multiplexing system to transmitanother information packet or fragment thereof. Additionally, becausethe multi-source multiplexing system may insert any information packetinto any grant region, the system does not segment and reassemble theinformation packets as an ATM system does.

That the invention improves over the drawbacks of prior datamultiplexing systems and accomplishes the advantages described abovewill become apparent from the following detailed description of theembodiments and the appended drawings and claims.

BRIEF DESCRIPTION OF THE FIGURES

FIG. 1 displays an exemplary operating environment for an embodiment ofthe present invention.

FIG. 2 is a diagram of a grant region and an information packet.

FIG. 3 is a diagram of an information packet header.

FIG. 4 is a diagram of a set of concatenated information packets.

FIG. 5 is a diagram of a fragmented information packet.

FIG. 6 is a diagram of a voice packet.

FIG. 7 is a diagram of a set of concatenated voice packets.

FIG. 8 displays a set of concatenated and fragmented information packetsin accordance with an embodiment of the present invention.

DETAILED DESCRIPTION

Multimedia networks may carry a combination of voice packets and datapackets. Typically, such multimedia networks treat a voice packet asthey would a data packet; formatting and transmission for both arehandled equivalently, and may share the same bandwidth. For example,both the asynchronous transfer method (ATM) approach and internetprotocol (IP) approach handle voice packets in this manner. However, anATP approach requires reserving network bandwidth for voice packets.Further, bandwidth management is typically allocated on a call-by-callbasis. ATM-style voice packet management also requires implementingsegmentation and reassembly (SAR) of all data. Network communication ofthis sort typically take place between a client computer or modem and acentral controller. The client transmits a bandwidth request to thecentral controller, which in turn allocates bandwidth on the network asnecessary and instructs the client when bandwidth is allocated andavailable. Thus, an ATM system may allocate bandwidth on a call-by-callbasis or even a cell by cell basis. Cell by cell allocation oftenresults in the transmission time of the next data packet (or fragmentthereof) being variable, depending on the bandwidth load of the network.Cell by cell allocation is also referred to as “bursty” allocation,because the central controller often assigns available bandwidth to theclient in bursts.

Briefly described, segmentation and reassembly breaks a data packet intosmaller chunks in order to be more easily handled by a network. Theclient sending the data then attaches a header to each chunk beforetransmitting them through the network. Further, network protocoldictates that each segment of the data packet be of a specific,predetermined size. Bandwidth provided by the network controller fordata transmission is effectively quantized; the transmission slots madeavailable to the client are of a fixed length.

In addition to segmenting the data packet in this manner, the ATM systemalso attaches a header to each data segment. The header is attached toevery data segment, and carries exactly the same information each timeit is attached. The header assists the destination computer inreassembling the data packet.

An alternate method for voice and data transportation is time domainmultiplexing (TDM). TDM is commonly used in public switched telephonenetworks. TDM systems may allocate bandwidth on a call by call basis,but may also reserve bandwidth on a premises by premises basis. That is,each device or client attached to the network receives every nth slot;the time interval between transmissions from a single client is fixed.TDM systems therefore may have smaller headers or even no headers; sincethe central controller assigns the same slot each time to the sameclient, a presumption exists that a certain slot contains data from aspecific client. The header may therefore omit any informationpertaining to the originating client when data or voice packets frommultiple clients are combined and transmitted.

The embodiment of the present invention integrates traffic (referred toherein as “information packets,” which may be comprised of data and/orvoice packets) from multiple sources into a flow, combining the periodicnature and minimal overhead characteristics of TDM voice with thetransport of bursty data packets in a manner that increases theefficiency of both voice and data over a shared access medium. The flowmay be periodic, as in voice packets, or it may be asynchronous, as inTCP/IP flows. As long as any single signal source is active, the flow ismaintained in a manner that significantly reduces the overhead requiredfor all signal sources using the flow. Hence, the usual segmentation andreassembly process which adds overhead to each component signal sourceis avoided in many cases. Example shared access media addressed by thisinvention include point to multi-point access systems such as cablemodem networks, wireless networks, satellite networks, and power linenetworks.

A brief description of the operation of the preferred embodimentfollows. An information packet flow from at least one signal source isset up on a connection between the multi-source multiplexing system andthe corresponding demultiplexing system. Additional flows from othersignal sources are multiplexed into the original flow to produce acomposite flow. As long as at least one flow remains active, thecomposite flow remains active, and the composite flow then serves as theprimary mechanism for requesting and transmitting additional bandwidthon the network. By appending or “piggybacking” requests for additionalbandwidth on this composite flow, the usual contention-based process forrequesting bandwidth may be avoided. This is in sharp contrast tomechanisms typically used today, such as the DOCSIS cable modemstandard, where requests for bandwidth for one type of traffic (forexample, data) may not be combined with transported packets of anothertype of traffic (for example, voice).

The central controller allocates bandwidth in the form of a “grantregion,” which is a contiguous portion of transmission time wherein aclient may insert an information packet for transmission. Therelationship between information packets waiting to be transmitted and agrant region on the network is decoupled. That is, the size of thepackets waiting for transmission bears an indirect relationship to thesize of the grant region; information packets from any source may beinserted into any grant region received by a client.

Exemplary Operating Environment for the Embodiment

FIG. 1 displays an exemplary operating environment for the presentembodiment. The multi-source multiplexing system 100 operates tomultiplex data packets from different signal sources 120 onto a sharedaccess media network, such as a hybrid fiberoptic/coaxial cable (HFC)network 170. Some shared access media networks contain a centralcontroller 190; for example, a cable modem termination system acts as acentral controller in an HFC network. Other examples of shared accessmedia networks include power line networks, wireless cable networks,satellite networks, and so on.

Each signal source 120 may be any source capable of requesting ortransmitting information (data or voice) packets across a shared accessnetwork, such as a telephone, computer program, set-top box and thelike. Each signal source 120 feeds the information packet to acorresponding device 130. As usual herein, the term “information packet”broadly includes any voice and data. The device 130 then transmits theinformation packet to client 110. In the example of an HFC network 170,the client 110 is typically a cable modem, although the invention mayalso be implemented by employing a cable modem as a device 130 and acombined cable modem/cable termination system as the client 110. Samplesignal sources include audio streams, computer applications, set-topboxes, web browsers, and so on. Sample devices include telephones,computers, media terminal adapters, and the like.

The multi-source multiplexing system 100 may be composed solely ofsoftware that runs on an existing cable modem and/or cable modemtermination system, or may be a combination of software and hardware.Further, although FIG. 1 displays the multi-source multiplexing system100 as including separate clients 110, devices 130, and signal sources120, one or more of these may be omitted from or combined in anembodiment and/or provided externally. For example, the client 110 anddevice 130 may both be a single cable modem, or the device 130 andsignal source may be a telephone, and so on.

The demultiplexing system 180 separates the data packets multiplexed andtransmitted across the network 170 by the multi-source multiplexingsystem 100. As in the case of the multi-source multiplexing system 100,the multi-source demultiplexing system 180 may be implemented assoftware running in an existing cable modem termination system, softwarerunning in a router or server 160 attached to the cable modemtermination system, or as a separate unit. Again, although FIG. 1displays the multi-source de-multiplexing system 180 as including acable modem termination system 190 and a server/router 160, one or moreof these may be omitted from an embodiment and/or provided externally.

The Data Channel

FIG. 2 displays a data multiplexing schematic. The data channel 200 isdivided into various grant regions 202-212 by the central controller.These grant regions are assigned by the central controller to differentclients requesting time allocations to transmit data. Each signal sourcehas a specific service class identifier, colloquially referred to as a“SCID.” Thus, the grant regions 202-212 are labeled according to theSCID of the signal source to which the central controller assigns them.For example, grant region 202 is assigned to client #3, and so islabeled “SCID3.”

In FIG. 2, SCID1 204 is assigned to the first signal source, controlledby the client. The client inserts part of information packet 214 intothe grant region 204. Grant regions 202 and 206 are assigned to signalsource #3, while grant region is assigned to signal source #1. Note thata data packet may also be referred to as a packet data unit, or “PDU.”The example shown in FIG. 1 presumes that signal sources #1 and #3 arecontrolled by different clients.

Unlike an ATM system, the multi-source multiplexing system of thepresent invention does not require that the client segment data packet214 into fixed quanta prior to inserting the packet in grant region 204.Rather, once the client determines that it is beneficial to break thepacket 214 into two or more parts, the client will do so, and may createa header 218 and append the header to the first part PDU1A 216. Thecomposition of the header is more fully discussed with respect to FIG.3. The header includes a pointer indicating the end of the data packetto which it is attached, as shown by the dashed arrows of FIG. 2. Inother words, the header for each data packet contains a stringindicating the overall packet length. In the event that a data packet issplit between two grant regions, the header attached to the firstportion of the data packet in the first grant region will always pointto the end of the final portion of the data packet in another grantregion. This is illustrated in FIG. 2 as a dashed arrow originating atthe front of PDU1A 216, and terminating at the end of PDU1B 220. Theheader is not strictly required for all signal flows; for voice flows,the header may be reduced to merely an index to information about theparticular voice flow, or in an extreme case, no header at all. This isa consequence of the invention being able to use the centralcontroller's knowledge of which specific client is transmitting in agrant region.

The client breaks PDU1 into two fragments, PDU1A 216 and PDU1B 220.Initially, the header 218 is appended to PDU1A. The size of PDU1A, plusthe header, exactly equals the size of grant region SCID1A 204. PDU1A216 and the header 218 are then inserted into the grant region 204. Thesize of the grant region 204 is therefore decoupled from the size of thedata packet 214.

Continuing with FIG. 2, it can be seen that a portion of PDU1 214remains to be transmitted, namely, PDU1B 220. Because not all of PDU1was received by the destination computer, the central controllerallocates an additional grant region SCID1B 210 to the client withoutnecessarily waiting for a bandwidth request. A second header 226 isaffixed to PDU1B 220; the second header is nearly identical to theheader 218 attached to PDU1A 216, with the possible exception ofcontinuation and/or initial segment flags. The client then inserts PDU1Binto the grant region SCID1B 210 and transmits PDU1B accordingly.

In the event that data packet portion PDU1B does not completely fillgrant region SCID1B 210, additional data packets originating in the samesource, source #1, may be transmitted within the grant region. FIG. 2displays two additional data packets, PDU2 222 and PDU3 224, transmittedwithin grant region SCID1B 210. Unlike ATM or TDM multiplexing, themulti-source multiplexing system of the present invention permits asingle grant region to contain multiple data packets. Further, thesystem permits both voice and data packets, or any combination of datapackets from any number of signal sources, to be transferred within thesame grant region. This concept is more fully explored with respect toFIG. 8.

The multi-source multiplexing system of the present invention appends aheader to each packet transmitted within the same grant region. That is,if a single data packet fills the entire grant region, a single headerfor that data packet is transmitted within the grant region. However, ifmultiple data packets are transmitted within the same grant region, thenthe multi-source multiplexing system attaches a discrete header to eachdata packet. This is the only circumstance under which multiple headerswill be received by the central controller or destination computerwithin a single grant region. Continuing with FIG. 2, it can be seenthat PDU2 222 and PDU3 224 each have an appended header, as required bythe system. This permits the destination computer to realize where onedata packet ends and another begins.

FIG. 3 displays a data packet header. The data packet header containsmultiple fields, each with a different purpose. Each of these fieldswill be discussed in turn. The header further typically containsinformation such as the IP address of the client, other locationinformation, and general data well known to those skilled in the art,none of which are shown on FIG. 3. Table 1 lists the fields included ina typical header, as discussed herein. TABLE 1 data transport headerfield specification Field Usage Size PK_PTR Length of the PDU in bytes.12 bits SCID Service class identifier of PDU 1 Byte FLAGS NPB - Numberof piggybacking 4 bits requests - 2 bits FFI - First fragmentindicator - 1 bit HSI - Header suppression indicator - 1 bit PBPiggybacking request messages N * 2 Bytes PHSI Payload headersuppression index 0/1 Byte Packet Packet PDU K Bytes Data Length 3.5 +(2 * N + 1) + K Bytes

The packet pointer 300 (PK_PTR) indicates the number of bytes remainingin a particular packet. The packet pointer essentially serves thepurpose of indicating the end of a data packet 214, as mentioned withrespect to FIG. 2. Also discussed with respect to FIG. 2 is the serviceclass identifier 320, or SCID.

Each header 218 also contains a FLAGS field 310. The FLAGS field 310comprises three separate flags (not shown in the figure). The NPB flagindicates the number of piggybacking requests transmitted within theheader. Piggybacking is more fully discussed with respect to FIG. 6. TheFFI flag indicates whether the header is attached to the first fragmentof a data packet 214. Finally, the HSI flag indicates whether headersuppression is active.

The header 218 may also contain a piggybacking request field 330. Thepiggybacking request field is used to transmit requests for additionalgrant regions 204 from a client to a central controller. Thepiggybacking request field 330 further comprises two subfields, the SCIDsubfield 332 and the NMS subfield 334. The SCID subfield contains theservice class identifier of the client requesting the additional grantregion 214, while the NMS field 334 indicates the size of the grantregion requested by the client. In an exemplary embodiment, the entireshared access channel is divided into fixed time slots (often referredto as mini-slots) and the grant regions are then specified via the indexto specific mini-slots. In this case, the NMS field 334 contains thenumber of mini-slots requested by a client.

Piggybacking requests 330 may be included in any data packet 214transmission 2. Thus, by way of example, any data packet 214 or datapacket fragment 216 may include up to four piggyback requests per grantregion 204. Further, a piggyback request 330 may be attached to any datapacket fragment 216, regardless of whether the fragment constitutes thefirst transmission or not. Table 2 displays the fields comprising thepiggyback request. TABLE 2 Piggybacking (PB) request message fieldspecification Field Usage Size SCID Service class identifier 1 Byte NMSNumber of mini-slots requested 1 Byte Total length  2 Bytes

The following example will illustrate this concept. Returning to FIG. 2,suppose again that data packet 214 is larger than the grant region 204initially allocated to the client by the central controller. Inaccordance with the discussion of FIG. 2, PDU1 214 is split into twodata packet fragments, PDU1A 216 and PDU1B 220. Insofar as PDU1B may notbe transmitted within grant region 204, a request for an additionalgrant region may be sent by the client. This request may be piggybackedon either PDU1A 216 or PDU1B 220, wherever data transmission would bemade more effective. Note that if the grant region has already beenrequested, the client must only request space equivalent to thepiggyback request plus any newly arriving data packets queued fortransmission. It may be that PDU1A 216 completely fills grant region204, and so no additional transmission time is available for thepiggyback request 330. In this case, the piggyback request is sent withPDU1B 220. Alternately, it may be that the data packet 214 is fragmentedsuch that PDU1A 216 leaves enough transmission time in the first grantregion 204 to accommodate the piggyback request. In this case, thepiggyback request 330 is attached to PDU1A 216 and transmitted in thefirst grant region 204. If there are no further grant regionsoutstanding, then the system may piggyback the request within the grantregion 204 in order to service both the piggyback request 330 andmaintain active composite flow.

Including the piggyback request 330 within the header 218 insures thatthe request for an additional grant region will not be lost, as canoccur in a contention interval. Typical shared access networks include acontention region in the transmission channel wherein all grant regionrequests are written by any client at any time. Oftentimes, this maymean that one request is overwritten by another; because no controls areimposed on the contention region, one client may eliminate anotherclient's request by inserting a request into the same portion of thecontention region. When the client includes the piggyback request 330 asa portion of a header 218 transmitted within a grant region 204, therequest will never be lost because no other client may write to thatgrant region.

Referring back to FIG. 3, the header 218 also contains a PHSI field 340.The PHSI field contains the payload header suppression index. Only thefirst fragment of a data packet 214 wherein header suppression is activecarries the PHSI field 340. All other data packet fragments 216 may omitthe PHSI field, although all headers typically contain the HSI flag.

Briefly described, header suppression embodies the concept that themulti-source multiplexing system may omit certain fields from the secondand succeeding headers 220 attached to subsequent data packet fragmentsonce the destination computer has received the first data packetfragment 216 and the associated header 218. The first header 218,attached to the first data packet fragment 216, contains all informationnormally carried by a header in a shared access network. Because thecentral controller 190 monitors the location of each data packet 214 ordata packet fragment 216 being transmitted and each data packet fragmentrelating to the same data packet share certain characteristics,information may be deleted from subsequent headers once the initialheader is received by the destination computer. For example, the header218 typically contains the IP address of the client computer. Once theIP address is received as a part of the first header 218 of the firstpacket of a flow, the next header 226 attached to another data packetfragment 220 comprising the original data packet 214 may omit the IPaddress. Subsequent packets in the same flow with the same IP addressmay also suppress the IP address, and may also suppress otherinformation in the header which either does not change, or changes in acompletely predictable manner for the entire flow.

Concatenation of Multiple Data Packets

The multi-source multiplexing system of the present invention permitsmultiple data packets to be transmitted within a single grant region.For example, in FIG. 2 multiple data packets are transmitted in grantregion 210. This minimizes wasted bandwidth by permitting a client totransmit additional data packets within a grant region if a single datapacket fails to fill the region. This process is referred to asconcatenation.

Each concatenated packet requires a separate header. FIG. 4 displays twoconcatenated packets, PDU1 400 and PDU2 450. So long as the grant region204 is large enough to accommodate both packets and their respectiveheaders, both packets may be transmitted within the same region.

The client appends header 1 405 to the first concatenated data packet400, and header 2 455 to the second concatenated data packet 450. Thetwo headers are not identical; header 1 405 contains a PHY field 410,while header 2 455 does not. The PHY field represent physical overheadrestraints, and only appears at the beginning of a transmission.

PK_PTR field 420 has a value of 30, indicating that the firstconcatenated data packet 400 comprises 30 bytes. Similarly, PK_PTR field460 indicates that the second concatenated data packet 450 contains 150bytes of information. Because the PK_PTR 420 value equals the size ofthe first concatenated packet 400, the multi-source multiplexing systemrealizes that PDU1 is not a data packet fragment, but instead an entiredata packet. In this example, SCID1 440 indicates that PDU1 400originates from signal source 17, while SCID2 480 indicates that PDU2comes from signal source 53.

The FLAGS field 430 was more fully described with respect to FIG. 3. Inbrief, the FLAGS field has a value of 0010. The first two bits (00) arethe NPB bits, indicating that no piggyback requests are transmitted. TheFFI bit is next. A value of 1 indicates that concatenated data packet 1400 is the first fragment. (In the case where a data packet 214 is notfragmented, the FFI bit is always 1.) The final bit is the HIS bit, orheader suppression indicator. A zero value signals that no headercompression is used in the transmission.

As explained further with respect to FIG. 6, the multi-sourcemultiplexing system may also concatenate data packets from multiplesources which have a predetermined relationship to each other.

Fragmentation and Transport of a Data Packet

FIG. 2 depicts the concept of data packet fragmentation. FIG. 5 shows afurther example of fragmentation and explores fragmentation in greaterdetail. When a data packet is fragmented, the multi-source multiplexingsystem 100 splits the packet into multiple data packet fragments 216.The multi-source multiplexing system appends a header 218 to each ofthese data packet fragments. Further, PHY overhead 410 is present at thebeginning of every transmission for the first data packet fragment 216within a separate grant region.

FIG. 5 shows a data packet 214 consisting of 235 bytes. This data packetis fragmented into three separate data packet fragments: PDU1 1 510 (30bytes), PDU12 520 (150 bytes), and PDU13 530 (55 bytes). Each datapacket fragment has an appended header; namely header 11 512, header 12522, and header 13 532, respectively.

The packet pointer field 300 (PK_PTR) generally indicates the number ofbytes remaining to be transmitted, including the current data packetfragment 216. Thus, the first PK_PTR field 514 has a value of 235,indicating that 235 bytes must be transmitted before all of data packetPDU1 500 is received. Similarly, the second PK_PTR field 524 has a valueof 205; 30 bytes of the data packet PDU1 500 were transmitted as PDU 11510, and 205 remain. Once PDU12 520 is transmitted within a grant region204, 55 bytes of the original data packet PDU1 500 remain. Thus, whenheader 13 532 is created and appended to PDU 13 530, the third PK_PTRfield 534 has a value of 55. As mentioned with respect to FIG. 2, allpacket pointer fields 300 point to the end of the data packet 214.

Note that only the FLAGS field 516 corresponding to the first datapacket fragment PDU11 510 has the FFI bit set to 1, indicating thatPDU11 is the first data packet fragment 216 of data packet PDU1 500.

Dual-Source Concatenation

The multi-source multiplexing system 100 may transmit voice across adata channel or data across a voice channel. Voice data is transmittedin the form of voice packets within a grant region, and may be handledin much the same manner as data packets. For example, the multi-sourcemultiplexing system 100 may concatenate and fragment voice packets. Thisis in contrast to conventional systems such as the DOCSIS cable modemspecification, where data must be transmitted via a data channel andvoice via a voice channel. Data packets and voice packets may be handleddifferently by the system in some respects, as detailed below.

FIG. 6 displays a voice packet 600. The voice packet is also referred toby the abbreviation “voice PDU”, or “packet data unit.” The client maytransmit voice packets 600 across a dedicated voice channel. The voicechannel carries voice packets only; no data packets 214 are present.Unlike data packet transport, the multi-source multiplexing system 100does not require a request from a client in order to allocate a grantregion on the voice channel. Rather, the central controller transmitsunsolicited grant regions to the client on a routine basis.

Each voice packet 600 also has a voice header 640 appended prior totransport. This header has a fundamentally different makeup than a dataheader 218, because voice data packets 600 are typically of a fixed sizeand transmitted at fixed intervals. Therefore, certain data may beomitted from the voice header 640, reducing it in size and conservingbandwidth. As previously mentioned, the voice header may be reduced suchthat it is no longer a header in the traditional sense, but merely anindex for demultiplexing sub-flows. If there are no sub-flows, thenthere is no need for a header. The following description indicates theoperation where there is a single byte voice header. The voice packetheader 640 is composed of two parts; a silence flag 610 and a voicechannel identification (VCID) flag 620. The silence flag indicateswhether a voice packet contains voice data, or is silent. The VCID flagcontains an identifying bit string corresponding to the transmittingclient. The destination computer employs the VCID flag to demultiplexincoming voice packets 600.

The presence of the silence flag 610 in the voice header 640 alsopermits the multi-source multiplexing system 100 to monitor the voicechannel for periods wherein the voice packets 600 contain no voice data,and reallocate bandwidth to other clients accordingly. This process isreferred to as “silence suppression.” By employing silence suppression,the multi-source multiplexing system 100 may make additional bandwidthavailable to high-demand clients, while minimizing wasted transmissiontime otherwise employed to keep open a silent voice channel.

In a typical shared access network, voice packets are typically 20 to 50bytes in length, while data packets may be up to 1518 bytes long.Further, voice transmissions occur at 4 to 64 kilobits per second, whiledata transmission may occur in bursts at rates up to 1.5 megabits persecond or more. Voice packets are thus typically much smaller than datapackets. This presents unique problems for transporting both data andvoice. Grant regions 204 in the present invention may thus be used fortransmitting either voice or data, and for requesting additionalbandwidth for voice or data, in accordance with a predetermined policy.

For example, a single grant region 204 may contain both a data packetand a voice packet. While the central controller typically allocates agrant region for a specific source's use, as indicated by the SCIDattached to the grant region, the multi-source multiplexing system mayfreely place any information packet from any source, including an audiosource such as a telephone, into the allocated grant region. The systemevaluates the size and priority of each existing information packet atthe time the client receives the grant region, and assigns aninformation packet to the grant region based on the results of thisevaluation. Potential factors in the client's grant region allocationevaluation include relative priority of the information packet, size ofthe information packet, and length of time the information packet haswaited to be transmitted. For example, voice data such as that generatedby a telephone typically possesses a very high priority, because voicedata packets must be delivered in a real-time manner. If significanttransmission delays separate two voice data packets, then a listenerperceives a silence between sounds. This is unacceptable during atelephone conversation. Thus, the priority of a voice packet must beweighed against the size of a data packet when deciding which totransport within a given grant region.

FIG. 7 displays two concatenated voice packets 600. Voice packets areconcatenated in a manner similar to that for data packets. The voicepackets are PDU A 700 and PDU B 710. Both PDU A and PDU B have appendedheaders. The PDU A header 705 and the PDU B header 715 are each one byte(eight bits) long, and consist of a silence bit 610 and a VCID flag 620.Concatenated voice packets may be inserted into a grant region 204 justas concatenated data packets 214 are.

The concatenated voice packets 600 also contain two piggyback requests,PB1 720 and PB2 730. These piggyback requests operate exactly likepiggyback requests in a concatenated data packet. Finally, physicallayer (PHY) overhead 740 is present at the beginning of the concatenatedvoice packets.

The multi-source concatenation system of the present invention alsopermits a client to transmit an information packet 214 from one signalsource in a grant region 204 allocated to a different signal source. Thesystem may, in conjunction with a predetermined policy used by thesystem, effectively ignore the fact that the central controller hasallocated a grant region for a specific source if the system determinesthat transporting another information packet 214 within the grant regionyields a higher transmission efficiency and/or reduced delay and/orincreased performance.

FIG. 8 displays an example of using a first source's grant region 204 totransport information packet 214 emanating from a second source. Forpurposes of this example, header size will be ignored. Source 1 850generates an information packet 214, namely PDU A 830. PDU A totals 125bytes. Similarly, source 2 860 generates information packet PDU B 840,which contains 40 bytes of information. The central controller assigns a50 byte grant region 204 in the data channel 200 to PDU A, namely thefirst grant region 800. Because the first grant region cannot containthe entirety of PDU A 830, the central controller also assigns a secondgrant region 810 to PDU A. Note that both the first grant region 800 andthe second grant region 810 are assigned to PDU A, because they carrythe identifier “SCID 1,” indicating for which service class they areintended. By contrast, grant regions SCID 10 850, SCID 4 860, and SCID 2820 are intended for different PDUs. Some of these other PDUs may becontrolled by separate clients.

The client determines upon receipt of the first grant region 800 themost efficient use of the grant region by evaluating the relative sizes,priorities, and other characteristics of PDU A 830 and PDU B 840. Inthis case, no other information packets enter into the evaluation,because the client does not possess any others. However, thedetermination may take into account as many information packets as theclient can control at a single point in time.

Continuing with the example, the client may determine that PDU B 840 isbetter suited for transport in the first grant region 800, because PDU Bfits entirely within the region. By contrast, PDU A 830 would requirefragmentation in order to utilize any portion of the first grant region.Thus, the client inserts PDU B 840 into the first grant region, despitethe fact that the central controller allocated the region to PDU A.Since some space remains in the first grant region 800, PDU A isfragmented into two data packet fragments: PDU A1 832 and PDU A2 834.The client ensures that PDU A1 exactly fills the space remaining withinthe first grant region 800 when fragmenting PDU A 830. PDU A1 is theninserted at the beginning of the first grant region, while PDU A2 isheld until the second grant region 810 is received by the client. Thus,a grant region intended for use by a specific information packet may befilled by a different information packet, depending on the outcome ofthe client's efficiency evaluation. This evaluation is further discussedin the section below labeled “Multi-Source Concatenation Algorithm.”

Further, there is no requirement in the example given in FIG. 8 that PDUA 830 and PDU B 840 be the same type of information packet 214. Forexample, PDU A may be a data packet created by a computer applicationprogram, while PDU B may be a voice packet from a telephone.

The multi-source, multiplexing system may also create a more efficientcomposite flow from a plurality of individual flows originating fromdistinct signal sources when the system controls several different cablemodems which have a predetermined relationship. For example, in theevent that contiguous grant regions 204 are assigned to informationpackets 214 controlled by the same multi-source multiplexing system, thecontiguous information regions may be used as a single informationregion. Returning to FIG. 8, presume that the central controller assignsa third grant region 860 to a PDU controlled by the same client as PDU A830 and PDU B 840. In this case, then PDU A may be placed into thecombination of the first grant region 800 and the third grant region 860without fragmenting the data packet. Essentially, the first grant regionand the third grant region are contiguous, and therefore may be treatedby the multi-source multiplexing system as a single grant region 204 bythe client. This eliminates the need for information packetfragmentation and the necessity of consuming transmission time throughadding a header to each information packet fragment. Further, it ispossible to reduce or eliminate PHY overhead in the process, in order toobtain additional efficiency in transmission.

Multi-Source Concatenation Algorithm

The client employs an algorithm to fragment and concatenate informationpackets. This algorithm uses the priority of information packets waitingfor transmission to determine the best fit for a specific grant region,and to determine whether a second source's information packet may moreefficiently be transmitted in the grant region allocated to a firstsource. The algorithm follows.

A policy is defined whereby packets from different signal sources areclassified. The classification can include, but is not limited to,priority, delay tolerance, jitter tolerance, fragmentation tolerance,and header suppression tolerance. The classification and policy are thenused by the multi-source multiplexing system to determine the order inwhich data packets are selected for transport in the grant regions. Theclassification can be set prior to system operation, or can be adaptedon the fly based on traffic loading, transport delays, and similarnetwork performance metrics. Policies may reference the individualsignal source, the type of signal source, the device, the network, orthe application through which multiple signal sources exist.

One example of a policy is that information packets of highest priorityare transmitted first without concern for the size of the grant region,with lower priority information packets being sent in order ofdecreasing priority. Information packets with equal priority would besent in the order in which they were queued by the multi-sourcemultiplexing system. Another policy would include the method justdescribed in addition to taking account of the duration of the availablegrant region. Information packets would be transmitted in order ofpriority but also by selecting from information packets of equalpriority, those packets which best fill the available grant region anddo not require additional fragmentation, regardless of the amount oftime which has transpired since the information packet was initiallyqueued. Yet another policy would include both methods just described,and add a mechanism for altering the priority of information packetsbased on the time since packets were initially queued. Packets that havebeen queued for longer than a predetermined time would be reassigned thehighest priority for transport, regardless of the duration of theavailable grant region.

Conclusion

The multi-source multiplexing system may include additionalfunctionality not herein specifically described. For example, the systemmay allow a user to set priorities for multiplexing various informationpackets. The multi-source multiplexing system may also accept multipletypes of sources beyond those listed, including input from remotelocations, additional audio sources such as a microphone, or othercomputer-readable data. Many other modifications and additional featureswill become evident in view of the preceding description of theembodiments of the invention. It should be understood, therefore, thatthe foregoing relates only to certain embodiments of the invention, andthat numerous changes may be made therein without departing from thespirit and scope of the invention as defined by the following claims.

1-32. (canceled)
 33. A method for transmitting data to a shared network,comprising: receiving a plurality of information packets from at leastone signal source; receiving an allocation of a first grant region froma controller in the shared network, wherein the first grant region isdesignated for transmission of a first information packet from a firstsignal source; accessing classification information associated with eachinformation packet; and locally allocating the first grant region basedon a transmission policy and the classification information for eachinformation packet, wherein the local allocation of the first grantregion is different then the allocation received from the controller inthe shared network.
 34. The method of claim 33, wherein the step oflocally allocating the first grant region comprises: allocating thegrant region to a plurality of information packets.
 35. The method ofclaim 34, wherein the plurality of information packets originate from asecond signal source.
 36. The method of claim 34, wherein the pluralityof information packets originate from a plurality of signal sources. 37.The method of claim 34, wherein the plurality of information packetsinclude a voice packet.
 38. The method of claim 33, further comprising:receiving an allocation of a second grant region from the controller inthe shared network, wherein the second grant region is designated fortransmission of a second information packet from one of the at least onesignal sources, wherein the step of locally allocating the grant regioncomprises: determining an information packet to transmit in the firstgrant region based on the transmission policy and the classificationinformation for each packet to be transmitted, determining whether thesize of the of the data packet exceeds the size of the first grantregion allocated by the controller, and if the size of the data packetexceeds the size of the first grant region, transmitting a firstfragment of the information packet in the first grant region and asecond fragment of the information packet in the second grant region.39. The method of claim 34, further comprising: transmitting theplurality of information packets in the first grant region on the sharednetwork.
 40. The method of claim 39, further comprising: transmitting arequest for an additional grant region to the controller in the firstgrant region.
 41. The method of claim 40, wherein the request for anadditional grant region includes an identification of one of the atleast one signal sources having an information packet to transmit and asize of the grant region required to transmit the information packet.42. The method of claim 38, further comprising: transmitting the firstfragment of the information packet in the first grant region on theshared network.
 43. The method of claim 41, further comprising:transmitting a request for an additional grant region to the controllerin the first grant region.
 44. The method of claim 34, wherein theclassification information includes transmission priority for theinformation packet.
 45. A system for transmitting data to a sharednetwork, comprising: a multi-source multiplexing system, wherein themulti-source multiplexing system includes: means for receiving aplurality of data packets from a plurality of signal sources, means forreceiving an allocation of a grant region for transmission of a firstdata packet from a controller in the shared network, means for accessingclassification information associated with each data packet, and meansfor locally allocating the grant region based on a transmission policyand the classification information for each packet, wherein the localallocation of the grant region is different then the allocation receivedfrom the controller in the shared network.
 46. The system of claim 45,wherein the shared network is a satellite network.
 47. The system ofclaim 45, wherein the shared network is a power line multimedia network.48. The system of claim 45, wherein the shared network is a cable modemnetwork.
 49. A method for transmitting data to a shared network,comprising: receiving a plurality of grant regions from a controller inthe shared network, wherein each grant region is designated for one of aplurality of data packets originating from one of a plurality of signalsources; and locally allocating each grant region based on atransmission policy and classification information associated with eachreceived packet, wherein the local allocation of the grant regions isdifferent then the allocation received from the controller in the sharednetwork.
 50. The method of claim 49, further comprising: transmitting arequest for an additional grant region to the controller in one of theplurality of grant regions.
 51. The method of claim 49, wherein theclassification information includes transmission priority for theinformation packet.